#ifndef ___fat32_recursos

#define ___fat32_recursos 1

typedef struct {
  unsigned int conexion;
  unsigned int transaccion;
} fat32_conexion_transaccion;

typedef struct {
  unsigned int transaccion;
  unsigned long long descriptor;
  unsigned char nivel;
} fat32_acceso_archivo;

typedef struct {
  unsigned long long descriptor;
  unsigned char tipo; // 0: lectura, 1: escritura, 2: ambos
  unsigned long clusterInicial;
  unsigned long tamano;
  unsigned long clusterInicialPadre;
  unsigned short numeroEntrada;
} fat32_apertura_archivo;

typedef struct {
  char ** ruta;
  unsigned long long descriptor;
  unsigned int dependientes;
  unsigned char tipo; // 0 = archivo, no 0 = directorio
} fat32_descriptor_archivo;

struct fat32_datos_recursos {
  fat32_conexion_transaccion * conexiones;
  fat32_acceso_archivo * archivos;
  fat32_descriptor_archivo * descriptores;
  fat32_apertura_archivo * aperturas;
  unsigned int cantConexiones;
  unsigned int cantArchivos;
  unsigned int cantDescriptores;
  unsigned int cantAperturas;
};

#endif